class code4_2 {
    public void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;

        boolean row = false;
        boolean col = false;

        //看第一行
        for(int j=0;j<n;j++) {
            if(matrix[0][j] == 0) {
                row = true;
                break;
            }
        }

        //看第一列
        for(int i=0;i<m;i++) {
            if(matrix[i][0] == 0) {
                col = true;
                break;
            }
        }

        //看其他部分有没有0
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
                if(matrix[i][j] == 0) {
                    matrix[0][j] = matrix[i][0] = 0;
                }
            }
        }

        //其他部分置为0
        for(int i=1;i<m;i++) {
            for(int j=1;j<n;j++) {
                if(matrix[i][0] == 0 || matrix[0][j] == 0) {
                    matrix[i][j] = 0;
                }
            }
        }

        if(row) {
            for (int j = 0; j < n; j++) {
                matrix[0][j] = 0;
            }
        }

        if(col) {
            for (int i = 0; i < m; i++) {
                matrix[i][0] = 0;
            }
        }

    }

}